home *** CD-ROM | disk | FTP | other *** search
/ Pesquisa Dirigida / Pesquisa Dirigida.iso / JOGOS / alloy.swf / scripts / DefineSprite_480 / frame_1 / DoAction.as
Text File  |  2005-01-07  |  10KB  |  437 lines

  1. if(!init)
  2. {
  3.    dir.gotoAndStop(random(2) + 1);
  4.    health = 100;
  5.    maxhealth = 100;
  6.    bodydmg = 20;
  7.    gundmg = 10;
  8.    init = 1;
  9.    name = "Hood Ratz";
  10.    pic = "Ratz";
  11.    N = 1;
  12.    NN = 0;
  13.    _root.tenem = _root.tenem + 1;
  14.    while(NN == 0)
  15.    {
  16.       if(eval("_root.game.enemy" + N + ".health") < 1)
  17.       {
  18.          _name = "enemy" + N;
  19.          if(N > _root.enemies)
  20.          {
  21.             _root.enemies = N;
  22.          }
  23.          NN = 1;
  24.       }
  25.       N++;
  26.    }
  27. }
  28. if(health < oldhealth)
  29. {
  30.    if(beenhit != "y")
  31.    {
  32.       _root.attackz = _root.attackz + 1;
  33.    }
  34.    beenhit = "y";
  35. }
  36. if(beenhit == "y" and airborn == "y")
  37. {
  38.    hangbonus++;
  39. }
  40. else
  41. {
  42.    if(int(hangbonus / 30) > 1)
  43.    {
  44.       points = int(hangbonus / 30) * 100;
  45.       _root.game.hangtxt.hits = int(hangbonus / 30);
  46.       _root.game.hangtxt.points = points;
  47.       _root.game.hangtxt._y = _root.game.alloy._y - 64;
  48.       _root.game.hangtxt._x = _X;
  49.       _root.game.hangtxt.gotoAndPlay(2);
  50.       _root.score += points;
  51.    }
  52.    hangbonus = 0;
  53.    beenhit = "";
  54. }
  55. ww = _width / 2 - 5;
  56. hh = _height;
  57. xx = _X;
  58. yy = _Y;
  59. max_right = _root.game.alloy.max_right;
  60. max_left = _root.game.alloy.max_left;
  61. if(airborn != "y" and health < 1)
  62. {
  63.    combotime = 0;
  64.    if(_root.meattime < 2)
  65.    {
  66.       _root.grinder = _root.grinder + 1;
  67.       _root.meatx = _X;
  68.    }
  69. }
  70. if(combotime > 0)
  71. {
  72.    if(airborn != "y" and _root.charging != 1)
  73.    {
  74.       combotime -= 1;
  75.    }
  76. }
  77. else if(combos > 0)
  78. {
  79.    if(points > 0)
  80.    {
  81.       _root.game.combotxt.hits = combos;
  82.       points = points * combos * 10;
  83.       _root.game.combotxt.points = points;
  84.       _root.game.combotxt._y = _root.game.alloy._y;
  85.       _root.game.combotxt._x = _X;
  86.       _root.game.combotxt.gotoAndPlay(2);
  87.       _root.score += points;
  88.    }
  89.    points = 0;
  90.    combos = 0;
  91. }
  92. if(_root.game.alloy.airborn != "y" and _root.harp == 1 and _root.harpooned == null and _root.harpx > xx - ww and _root.harpx < xx + ww and _root.harpy > yy - hh - 16 and _root.harpy < yy + 16)
  93. {
  94.    _root.harpooned = "_root.game." + _name;
  95.    ani1 = "";
  96.    airborn = "y";
  97.    _root.harppp = 1;
  98.    ai = "off";
  99.    hitz = 1;
  100. }
  101. if(_root.projectile != null)
  102. {
  103.    _root.projectile_time = 3;
  104. }
  105. if(_root.desperation == "y" and _root.game.alloy._y > yy - hh and _root.game.alloy._y < yy + 100 and gravity >= 0)
  106. {
  107.    if(_root.game.alloy._x < xx and _root.game.alloy._x + 85 > xx - ww)
  108.    {
  109.       health -= 20;
  110.       xm = 25;
  111.       combotime = 3;
  112.       gravity = -32 + random(15);
  113.       airborn = "y";
  114.       _Y = _Y - 11;
  115.       this.dir.ani.gotoAndStop("hit");
  116.       ai = "off";
  117.       hitz = 1;
  118.    }
  119.    else if(_root.game.alloy._x > xx and _root.game.alloy._x - 85 < xx + ww)
  120.    {
  121.       health -= 20;
  122.       xm = -25;
  123.       combotime = 3;
  124.       gravity = -32 + random(15);
  125.       airborn = "y";
  126.       _Y = _Y - 11;
  127.       this.dir.ani.gotoAndStop("hit");
  128.       ai = "off";
  129.       hitz = 1;
  130.    }
  131.    if(hitz == 1)
  132.    {
  133.       _root.game.spfx._y = _root.ay - 60;
  134.       _root.game.spfx._x = _X;
  135.       tellTarget("_root.game")
  136.       {
  137.          efx++;
  138.          duplicateMovieClip("spfx","newfx" + efx,16384 + (999 + efx));
  139.       }
  140.       tellTarget("_root.game.newfx" + efx)
  141.       {
  142.          play();
  143.       }
  144.    }
  145. }
  146. if(_root.projectile != _name and _root.projectile != null and _root.projectilex > xx - ww and _root.projectilex < xx + ww and _root.projectiley > yy - hh and _root.projectiley < yy)
  147. {
  148.    if(_root.projectile_time > 0)
  149.    {
  150.       _root.projectile_string = _root.projectile_string + 1;
  151.    }
  152.    health -= eval("_root.game." + _root.projectile + ".bodydmg");
  153.    xm = eval("_root.game." + _root.projectile + ".xm") * 1.05;
  154.    combos++;
  155.    combotime = 3;
  156.    gravity = -22;
  157.    airborn = "y";
  158.    _Y = _Y - 11;
  159.    set("_root.game." + _root.projectile + ".xm",xm * -0.5);
  160.    set("_root.game." + _root.projectile + ".gravity",eval("_root.game." + _root.projectile + ".gravity") - 10);
  161.    this.dir.ani.gotoAndStop("hit");
  162.    _root.projectile = null;
  163.    _root.oldprojx = _X;
  164.    _root.oldprojy = _Y;
  165.    ai = "off";
  166.    hitz = 1;
  167. }
  168. axa = 70 * _root.game.harpoon.mod;
  169. if(_root.bike == 1 and _root.ax + axa + 10 > xx - ww and _root.ax + axa - 10 < xx + ww and yy > _root.ay - 80 and yy - hh < _root.ay and gravity >= 0)
  170. {
  171.    health -= 20;
  172.    xm = 4 * _root.game.harpoon.mod;
  173.    gravity = -66;
  174.    airborn = "y";
  175.    this.dir.ani.gotoAndStop("hit");
  176.    ai = "off";
  177.    hitz = 1;
  178.    combos++;
  179.    combotime = 3;
  180.    _root.bikehitz = _root.bikehitz + 1;
  181.    _root.oldbikex = _X;
  182. }
  183. if(airborn == "y")
  184. {
  185.    hangtime++;
  186.    ai = "off";
  187.    if(xm >= 10 or xm <= -10)
  188.    {
  189.       if(_root.unlock != 1)
  190.       {
  191.          _root.follow = "_root.game." + _name;
  192.       }
  193.       focus = 0;
  194.    }
  195.    else
  196.    {
  197.       focus = 1;
  198.    }
  199.    if(xm >= 20 or xm <= -20)
  200.    {
  201.       _root.projectile = _name;
  202.       _root.projectilex = xx;
  203.       _root.projectiley = yy;
  204.       _root.projectilew = ww;
  205.       _root.projectilehh = hh;
  206.    }
  207.    else if(_root.projectile == _name)
  208.    {
  209.       _root.projectile = null;
  210.    }
  211.    _X = _X + xm;
  212.    if(_X < max_left and hangtime > 2)
  213.    {
  214.       _X = max_left;
  215.       xm *= -1;
  216.    }
  217.    else if(_X > max_right and hangtime > 2)
  218.    {
  219.       _X = max_right;
  220.       xm *= -1;
  221.    }
  222.    gravity += 3;
  223.    if(gravity > 50)
  224.    {
  225.       gravity = 50;
  226.    }
  227.    this._y += gravity;
  228.    term = 0;
  229.    i = 1;
  230.    while(term != 1)
  231.    {
  232.       floor_x1 = eval("_root.game.floor" + i + ".x1");
  233.       floor_x2 = eval("_root.game.floor" + i + ".x2");
  234.       floor_y1 = eval("_root.game.floor" + i + ".y1");
  235.       floor_y2 = eval("_root.game.floor" + i + ".y2");
  236.       if(gravity > 0)
  237.       {
  238.          if(_X + ww > floor_x1 and _X - ww < floor_x2)
  239.          {
  240.             if(_Y >= floor_y1 and _Y - 50 < floor_y1)
  241.             {
  242.                _Y = floor_y1;
  243.                if(hangtime > 20)
  244.                {
  245.                   hitz = 1;
  246.                }
  247.                airborn = "n";
  248.                ani1 = "n";
  249.                floor = i;
  250.                floory = floor_y1;
  251.                floorx1 = floor_x1;
  252.                floorx2 = floor_x2;
  253.             }
  254.          }
  255.       }
  256.       if(eval("_root.game.floor" + (i + 1) + ".exists") != "y")
  257.       {
  258.          term = 1;
  259.       }
  260.       i++;
  261.    }
  262. }
  263. else
  264. {
  265.    hangtime = 0;
  266.    if(_X < max_left)
  267.    {
  268.       dir.gotoAndStop(2);
  269.       mode = "walk";
  270.    }
  271.    else if(_X > max_right)
  272.    {
  273.       dir.gotoAndStop(1);
  274.       mode = "walk";
  275.    }
  276.    gravity = 0;
  277.    xm = 0;
  278.    ym = 0;
  279.    if(_root.projectile == _name)
  280.    {
  281.       _root.projectile = null;
  282.    }
  283.    if(_Y != floory and floor > 0)
  284.    {
  285.       _Y = floory;
  286.    }
  287.    if(focus != 1)
  288.    {
  289.       _root.follow = "_root.game.alloy";
  290.       xm = 0;
  291.    }
  292.    focus = 1;
  293.    floor_x1 = eval("_root.game.floor" + floor + ".x1");
  294.    floor_x2 = eval("_root.game.floor" + floor + ".x2");
  295.    floor_y1 = eval("_root.game.floor" + floor + ".y1");
  296.    floor_y2 = eval("_root.game.floor" + floor + ".y2");
  297.    if(_X + ww < floor_x1 or _X - ww > floor_x2)
  298.    {
  299.       airborn = "y";
  300.       gravity = 4;
  301.       this.dir.ani.gotoAndStop("fall");
  302.    }
  303.    if(health < 1)
  304.    {
  305.       dir.ani.gotoAndStop("hit");
  306.       gotoAndPlay(3);
  307.    }
  308.    if(stun > 0)
  309.    {
  310.       stun--;
  311.    }
  312. }
  313. dir.ani.airborn = airborn;
  314. if(combotimer > 0)
  315. {
  316.    combotimer--;
  317. }
  318. oldhealth = health;
  319. if(hitz == 1)
  320. {
  321.    hitz = 0;
  322.    tellTarget("_root")
  323.    {
  324.       hitz.start(0,1);
  325.    }
  326. }
  327. if(ai == "on" and stationary > 10 and stun < 1)
  328. {
  329.    if(floorx2 - floorx1 > 164)
  330.    {
  331.       if(xx < floorx1 + 10)
  332.       {
  333.          _X = floorx1 + 10;
  334.          mode = "stand";
  335.          timer = 30 + random(60);
  336.       }
  337.       else if(xx > floorx2 - 10)
  338.       {
  339.          _X = floorx1 + 10;
  340.          mode = "stand";
  341.          timer = 30 + random(60);
  342.       }
  343.       else if(mode == "stand")
  344.       {
  345.          dir.ani.gotoAndStop("stance");
  346.          if(timer < 1 and looking != 0)
  347.          {
  348.             option = random(2);
  349.             if(option == 1)
  350.             {
  351.                if(_root.ay > yy - hh and _root.ay < yy + 20)
  352.                {
  353.                   if(_root.ax > xx + 240)
  354.                   {
  355.                      dir.gotoAndStop(2);
  356.                      mode = "walk";
  357.                      timer = 60 + random(60);
  358.                   }
  359.                   else if(_root.ax < xx - 240)
  360.                   {
  361.                      dir.gotoAndStop(1);
  362.                      mode = "walk";
  363.                      timer = 60 + random(60);
  364.                   }
  365.                }
  366.             }
  367.             else
  368.             {
  369.                timer = 30 + random(60);
  370.                if(_root.ay > yy - hh and _root.ay < yy + 20 and looking != 0)
  371.                {
  372.                   if(looking == -1 and dirmod == 1 and _root.ax > xx)
  373.                   {
  374.                      dir.gotoAndStop(2);
  375.                      if(mode == "stand")
  376.                      {
  377.                         timer = 0;
  378.                      }
  379.                   }
  380.                   else if(looking == -1 and dirmod == -1 and _root.ax < xx)
  381.                   {
  382.                      dir.gotoAndStop(1);
  383.                      if(mode == "stand")
  384.                      {
  385.                         timer = 0;
  386.                      }
  387.                   }
  388.                   if(random(10) < 5)
  389.                   {
  390.                      if(_root.ax > xx)
  391.                      {
  392.                         dir.gotoAndStop(2);
  393.                      }
  394.                      else
  395.                      {
  396.                         dir.gotoAndStop(1);
  397.                      }
  398.                      ai = "off";
  399.                      dir.ani.gotoAndStop("shoot");
  400.                   }
  401.                }
  402.             }
  403.          }
  404.       }
  405.       else if(mode == "walk")
  406.       {
  407.          dir.ani.gotoAndStop("run");
  408.          _X = _X + 10 * dirmod;
  409.       }
  410.    }
  411.    if(_root.ay > yy - hh and _root.ay < yy + 20 and mode == "walk")
  412.    {
  413.       if(_root.ax < xx + 120 and _root.ax > xx - 120)
  414.       {
  415.          timer = 0;
  416.          ai = "off";
  417.          dir.ani.gotoAndStop("shoot");
  418.       }
  419.    }
  420. }
  421. if(timer > 0)
  422. {
  423.    timer--;
  424. }
  425. else
  426. {
  427.    mode = "stand";
  428. }
  429. if(stationary < 12)
  430. {
  431.    stationary++;
  432. }
  433. if(airborn == "y")
  434. {
  435.    stationary = 0;
  436. }
  437.